/**
 * @author harae Feng 
 * @date 2019-09-12 10:35:35 
 * @Last Modified by: harae Feng
 * @Last Modified time: 2019-09-18 16:25:55
 * @Describe 文件类工具操作
 */

const fs = require('fs')
const path = require('path')

/**
 *检测文件夹是否存在，不存在则创建
 *
 * @param {*} path1 // 绝对路径
 * @returns
 */
function mkdirSync(path1){
     try{
         fs.accessSync(path1, fs.constants.R_OK | fs.constants.W_OK);
     }catch(e){
         fs.mkdirSync(path1)
     }
     return true
 }


/**
 *删除文件夹及其内容
 *
 * @param {*} path1 绝对路径
 * @param {boolean} [isDeleteCurrFolder=true] 是否删除当前文件夹(true)，还是清空(false)
 */
function deldirSync(path1, isDeleteCurrFolder=true){
    let files = []
    if(fs.existsSync(path1)){
        console.log(`-- 文件夹 ${path1} 正在删除ing...`)
        files = fs.readdirSync(path1)
        files.forEach((file, index)=>{
            let curPath = `${path1}/${file}`
            if(fs.statSync(curPath).isDirectory()){
                deldirSync(path1)
            } else {
                fs.unlinkSync(curPath)
            }
        })
        isDeleteCurrFolder && fs.rmdirSync(path1)
        console.log(`-- 文件夹 ${path1} 删除完成`)
    } else{
        console.log(`--\`_\` 文件夹 ${path1} 不存在`)
    }
 }

 /**
  * 是否存在
  * @param {String} path 绝对路径
  */
 function existSync(path){
    try {
        fs.accessSync(path)        
        return true
    } catch (error) {
        return false
    }
 }

 module.exports = {
    mkdirSync: mkdirSync,
    deldirSync: deldirSync,
    existSync: existSync,
 }